package ru.inse.core.service.realty;

import ru.inse.core.dao.DaoException;
import ru.inse.core.dao.realty.IRealtyItemCriteraAppenderFactory;
import ru.inse.core.dao.realty.RealtyQueryParam;
import ru.inse.core.domain.realty.RealtyItem;
import ru.inse.core.domain.realty.RealtyObject;
import ru.inse.core.domain.realty.RealtyRubric;
import ru.inse.core.service.IService;
import ru.inse.core.service.realty.impl.RealtyServiceException;


public interface IRealtyItemService
    extends IService<RealtyItem>
{
    void persist(RealtyItem item, Long cityId)
        throws RealtyServiceException, DaoException;

    void save(RealtyItem item, Long cityId)
        throws RealtyServiceException, DaoException;

    void remove(Long id, Long cityId)
        throws DaoException;

    IRealtyItemCriteraAppenderFactory getAppenderFactory();
    
    Long count(RealtyQueryParam param, RealtyRubric rubric, RealtyObject object);

    
}
